var config = {
    serverHost : 'http://localhost:9091'
}
var Hogan = require('hogan.js');

var _util = {    
    request : function(param){
        var _this = this;
        $.ajax({
            type     : param.method || 'GET', // GET是默认值
            url      : param.url || '',
            dataType : param.type || 'json',
            data     : param.data || '',
            xhrFields : {
                withCredentials : true
            },
            success  : function (response) {
                if(0 === response.status){
                    typeof param.success ===  'function'&& param.success(response.data,response.msg);  // 这是一种通用写法
                }else if(10 === response.status){
                    _this.doLogin();

                }else if(1 === response.status){
                    typeof param.error ===  'function'&& param.error(response.msg);
                }
            },
            error    : function(errMsg){
                // todo 请求错误的提示
                typeof param.error ===  'function'&& param.error('服务器异常');

            }
        });
    },
    doLogin : function(){
        window.location.href = './account/login.html?redirect='+encodeURIComponent(window.location.href);
    },
    getServerURL : function(path){
        return config.serverHost + path;
    },
    // 目前仅支持非空校验
    validateField : function(fieldType,fieldValue){
        var fieldValue = $.trim(fieldValue);
        if(fieldType === 'require'){
            return !!fieldValue;
        }
        // 可以增加电话、邮箱等的校验
    },
    getURLParam : function(name){
        // http:localhost:8888/user-login.html?redirect=x.html&a=1&b=2
        var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)');
        var result = window.location.search.substring(1).match(reg);
        // search函数可以拿到如上述注释中url的“?”后面的东西（redirect……）
        return result ? decodeURIComponent(result[2]): null;
    },
    renderHtml : function(htmlTemplate,data){
        var template = Hogan.compile(htmlTemplate);
        var result = template.render(data);
        // console.log(result);
        return result;

    }

};

module.exports = _util;